package com.ruoyi.transfers.service;

import java.util.List;
import com.ruoyi.exitwarehouse.domain.WExitWarehouseInfo;
import com.ruoyi.goods.domain.TGoodsWeightSum;
import com.ruoyi.transfers.domain.TimeLineActivity;
import com.ruoyi.transfers.domain.WGoodsTransferInfo;

/**
 * 货转信息Service接口
 * 
 * @author wzy
 * @date 2024-09-09 13:25:55
 */
public interface IWGoodsTransferInfoService 
{
    /**
     * 查询货转信息
     * 
     * @param goodsTransferId 货转信息主键
     * @return 货转信息
     */
    public WGoodsTransferInfo selectWGoodsTransferInfoByGoodsTransferId(Long goodsTransferId);

    /**
     * 查询货转信息列表
     * 
     * @param wGoodsTransferInfo 货转信息
     * @return 货转信息集合
     */
    public List<WGoodsTransferInfo> selectWGoodsTransferInfoList(WGoodsTransferInfo wGoodsTransferInfo);

    /**
     * 新增货转信息
     * 
     * @param wGoodsTransferInfo 货转信息
     * @return 结果
     */
    public int insertWGoodsTransferInfo(WGoodsTransferInfo wGoodsTransferInfo);

    /**
     * 修改货转信息
     * 
     * @param wGoodsTransferInfo 货转信息
     * @return 结果
     */
    public int updateWGoodsTransferInfo(WGoodsTransferInfo wGoodsTransferInfo);

    /**
     * 批量删除货转信息
     * 
     * @param goodsTransferIds 需要删除的货转信息主键集合
     * @return 结果
     */
    public int deleteWGoodsTransferInfoByGoodsTransferIds(Long[] goodsTransferIds);

    /**
     * 删除货转信息信息
     * 
     * @param goodsTransferId 货转信息主键
     * @return 结果
     */
    public int deleteWGoodsTransferInfoByGoodsTransferId(Long goodsTransferId);

    /**
     * 查询货转信息列表
     *
     * @param goodsIds 货转信息
     * @return 货转信息集合
     */
    public List<WGoodsTransferInfo> selectWGoodsTransferInfoByGoodsId(List<Long> goodsIds, Long goodsTransferId);

    /**
     * 批量删除货转信息
     *
     * @param goodsTransferIds 需要删除的货转信息主键集合
     * @return 结果
     */
    public List<TimeLineActivity> selectTimeLineActivityByGoodsTransferId(String goodsTransferIds);
//    public List<TimeLineActivity> selectTimeLineActivityByGoodsTransferId(Long[] goodsTransferIds);

    /**
     * 修改货转信息
     *
     * @param goodsTransferId 货转ID
     * @return 结果
     */
    public int updateWTransferTotalWeightPieceByGoodsTransferId(Long goodsTransferId);

    /**
     * 获取货物重量合计
     *
     * @param wGoodsTransferInfo 货物信息参数
     * @return 结果
     */
    public List<TGoodsWeightSum> getWeightSumByGoodsTransferInfo(WGoodsTransferInfo wGoodsTransferInfo);
}
